import os
import pdfplumber
from docx import Document


def pdf_to_docx(pdf_path, docx_path):
    # 创建一个新的docx文档
    doc = Document()

    # 打开PDF文件
    with pdfplumber.open(pdf_path) as pdf:
        # 遍历每一页
        for page_num, page in enumerate(pdf.pages, start=1):
            text = page.extract_text()  # 提取文本
            if text:
                doc.add_paragraph(f'Page {page_num}')  # 添加页码
                doc.add_paragraph(text)  # 添加页内容
                doc.add_page_break()  # 分页符

    # 保存为docx文件
    doc.save(docx_path)
    print(f'PDF文件已成功转换为DOCX: {docx_path}')


def convert_all_pdfs_in_directory(input_dir, output_dir):
    # 检查输出目录是否存在，如果不存在则创建
    if not os.path.exists(output_dir):
        os.makedirs(output_dir)

    # 遍历输入目录下的所有PDF文件
    for filename in os.listdir(input_dir):
        if filename.endswith('.pdf'):
            pdf_path = os.path.join(input_dir, filename)
            docx_filename = f"{os.path.splitext(filename)[0]}.docx"  # 使用相同的文件名
            docx_path = os.path.join(output_dir, docx_filename)

            # 转换PDF为DOCX
            pdf_to_docx(pdf_path, docx_path)


# 示例用法
input_directory = r'D:\客服知识库\data\集中式\NCS7000集中式存储系列\1.实施文档'  # PDF文件所在目录
output_directory = r'D:\客服知识库\data\集中式\NCS7000集中式存储系列\1.实施文档\docx'  # DOCX文件存放目录

convert_all_pdfs_in_directory(input_directory, output_directory)
